﻿/**
 * 
 * @file OperNastranBDFExport.h
 * @brief Nastran BDF文件导出操作类
 * @author shenzhuowei (2931275006@qq.com)
 * @date 2025-03-04
 * 
 */
#ifndef _OPER_NASTRAN_BDF_EXPORT_H___
#define _OPER_NASTRAN_BDF_EXPORT_H___

#include "FITK_Kernel/FITKCore/FITKActionOperator.h"
#include "FITK_Kernel/FITKCore/FITKOperatorRepo.h"


namespace ModelOper
{
    /**
     * @brief Nastran BDF文件导出操作类
     * @author shenzhuowei (2931275006@qq.com)
     * @date 2025-03-04
     */
    class OperNastranBDFExport :public Core::FITKActionOperator
    {
        Q_OBJECT;
    public:
        /**
         * @brief Construct a new Oper Nastran B D F Import object
         * @author LiBaojun (libaojunqd@foxmail.com)
         * @date 2024-10-11
         */
        explicit OperNastranBDFExport() = default;
        /**
         * @brief Destroy the Oper Nastran B D F Import object
         * @author LiBaojun (libaojunqd@foxmail.com)
         * @date 2024-10-11
         */
        virtual ~OperNastranBDFExport() = default;
        /**
         * @brief 执行GUI操作程序，选择文件对话框
         * @return true 
         * @return false 
         * @author LiBaojun (libaojunqd@foxmail.com)
         * @date 2024-10-11
         */
        virtual bool execGUI() override;
        /**
         * @brief 执行操作程序，直接读取文件
         * @return true 
         * @return false 
         * @author LiBaojun (libaojunqd@foxmail.com)
         * @date 2024-10-11
         */
        virtual bool execProfession() override;

    private slots:
        /**
         * @brief 读取线程结束执行该槽函数
         * @author LiBaojun (libaojunqd@foxmail.com)
         * @date 2024-03-26
         */
        void ioThreadFinishedSlot();
    };

    // 按钮注册相关操作
    Register2FITKOperatorRepo(actionExportNastranBDF, OperNastranBDFExport);
    
}


#endif
